home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / Movies.idl < prev    next >
Text File  |  1996-05-01  |  13KB  |  524 lines

  1. /*
  2.      File:        Movies.idl
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.1
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __MOVIES_IDL__
  19. #define __MOVIES_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __QUICKDRAW_IDL__
  25. #include <Quickdraw.idl>
  26. #endif
  27. #ifndef __ALIASES_IDL__
  28. #include <Aliases.idl>
  29. #endif
  30. #ifndef __EVENTS_IDL__
  31. #include <Events.idl>
  32. #endif
  33. #ifndef __MENUS_IDL__
  34. #include <Menus.idl>
  35. #endif
  36. #ifndef __COMPONENTS_IDL__
  37. #include <Components.idl>
  38. #endif
  39. #ifndef __IMAGECOMPRESSION_IDL__
  40. #include <ImageCompression.idl>
  41. #endif
  42.  
  43. #ifdef __SOMIDL__
  44.  
  45. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  46. /*  "kFix1" is defined in FixMath as "fixed1"  */
  47. /* error codes are in Errors.[haa] */
  48. /* gestalt codes are in Gestalt.[hpa] */
  49. typedef SOMFourByteStruct        MovieRecord;                /* Derived from a struct of 4 bytes in size */
  50.  
  51. typedef OpaquePtr                Movie;                        /* Substituted OpaquePtr for ``MovieRecord*'' */
  52.  
  53. typedef SOMFourByteStruct        TrackRecord;                /* Derived from a struct of 4 bytes in size */
  54.  
  55. typedef OpaquePtr                Track;                        /* Substituted OpaquePtr for ``TrackRecord*'' */
  56.  
  57. typedef SOMFourByteStruct        MediaRecord;                /* Derived from a struct of 4 bytes in size */
  58.  
  59. typedef OpaquePtr                Media;                        /* Substituted OpaquePtr for ``MediaRecord*'' */
  60.  
  61. typedef SOMFourByteStruct        UserDataRecord;                /* Derived from a struct of 4 bytes in size */
  62.  
  63. typedef OpaquePtr                UserData;                    /* Substituted OpaquePtr for ``UserDataRecord*'' */
  64.  
  65. typedef SOMFourByteStruct        TrackEditStateRecord;        /* Derived from a struct of 4 bytes in size */
  66.  
  67. typedef OpaquePtr                TrackEditState;                /* Substituted OpaquePtr for ``TrackEditStateRecord*'' */
  68.  
  69. typedef SOMFourByteStruct        MovieEditStateRecord;        /* Derived from a struct of 4 bytes in size */
  70.  
  71. typedef OpaquePtr                MovieEditState;                /* Substituted OpaquePtr for ``MovieEditStateRecord*'' */
  72.  
  73. typedef SOMLargeStruct            SampleDescription;            /* Derived from a struct of 16 bytes in size */
  74.  
  75. typedef OpaquePtr                SampleDescriptionPtr;        /* Substituted OpaquePtr for ``SampleDescription*'' */
  76.  
  77. typedef OpaquePtr                SampleDescriptionHandle;    /* Substituted OpaquePtr for ``SampleDescriptionPtr*'' */
  78.  
  79. typedef SOMFourByteStruct        SpriteWorldRecord;            /* Derived from a struct of 4 bytes in size */
  80.  
  81. typedef OpaquePtr                SpriteWorld;                /* Substituted OpaquePtr for ``SpriteWorldRecord*'' */
  82.  
  83. typedef SOMFourByteStruct        SpriteRecord;                /* Derived from a struct of 4 bytes in size */
  84.  
  85. typedef SpriteRecord            Sprite;
  86.  
  87. typedef Handle                    QTAtomContainer;
  88.  
  89. typedef long                    QTAtom;
  90.  
  91. typedef long                    QTAtomType;
  92.  
  93. typedef long                    QTAtomID;
  94.  
  95. typedef SOMLargeStruct            SoundDescription;            /* Derived from a struct of 36 bytes in size */
  96.  
  97. typedef OpaquePtr                SoundDescriptionPtr;        /* Substituted OpaquePtr for ``SoundDescription*'' */
  98.  
  99. typedef OpaquePtr                SoundDescriptionHandle;        /* Substituted OpaquePtr for ``SoundDescriptionPtr*'' */
  100.  
  101. typedef SOMLargeStruct            TextDescription;            /* Derived from a struct of 59 bytes in size */
  102.  
  103. typedef OpaquePtr                TextDescriptionPtr;            /* Substituted OpaquePtr for ``TextDescription*'' */
  104.  
  105. typedef OpaquePtr                TextDescriptionHandle;        /* Substituted OpaquePtr for ``TextDescriptionPtr*'' */
  106.  
  107. typedef SOMLargeStruct            DataReferenceRecord;        /* Derived from a struct of 8 bytes in size */
  108.  
  109. typedef OpaquePtr                DataReferencePtr;            /* Substituted OpaquePtr for ``DataReferenceRecord*'' */
  110.  
  111. /*
  112. --------------------------
  113.   Music Sample Description
  114. --------------------------
  115. */
  116. typedef SOMLargeStruct            MusicDescription;            /* Derived from a struct of 24 bytes in size */
  117.  
  118. typedef OpaquePtr                MusicDescriptionPtr;        /* Substituted OpaquePtr for ``MusicDescription*'' */
  119.  
  120. typedef OpaquePtr                MusicDescriptionHandle;        /* Substituted OpaquePtr for ``MusicDescriptionPtr*'' */
  121.  
  122. /* progress messages */
  123. /* progress operations */
  124. typedef OpaquePtr MovieRgnCoverProcPtr;
  125. typedef OpaquePtr MovieRgnCoverUPP;
  126. typedef OpaquePtr MovieProgressProcPtr;
  127. typedef OpaquePtr MovieProgressUPP;
  128. typedef OpaquePtr MovieDrawingCompleteProcPtr;
  129. typedef OpaquePtr MovieDrawingCompleteUPP;
  130. typedef OpaquePtr TrackTransferProcPtr;
  131. typedef OpaquePtr TrackTransferUPP;
  132. typedef OpaquePtr GetMovieProcPtr;
  133. typedef OpaquePtr GetMovieUPP;
  134. typedef OpaquePtr MoviePreviewCallOutProcPtr;
  135. typedef OpaquePtr MoviePreviewCallOutUPP;
  136. typedef OpaquePtr MoviesErrorProcPtr;
  137. typedef OpaquePtr MoviesErrorUPP;
  138. typedef OpaquePtr TextMediaProcPtr;
  139. typedef OpaquePtr TextMediaUPP;
  140. typedef ComponentInstance        MediaHandler;
  141.  
  142. typedef ComponentInstance        DataHandler;
  143.  
  144. typedef Component                MediaHandlerComponent;
  145.  
  146. typedef Component                DataHandlerComponent;
  147.  
  148. typedef ComponentResult            HandlerError;
  149.  
  150. /* TimeBase equates */
  151. typedef long                    TimeValue;
  152.  
  153. typedef long                    TimeScale;
  154.  
  155. typedef wide                    CompTimeValue;
  156.  
  157. typedef unsigned long            TimeBaseFlags;
  158.  
  159. typedef SOMFourByteStruct        TimeBaseRecord;                /* Derived from a struct of 4 bytes in size */
  160.  
  161. typedef OpaquePtr                TimeBase;                    /* Substituted OpaquePtr for ``TimeBaseRecord*'' */
  162.  
  163. typedef SOMFourByteStruct        CallBackRecord;                /* Derived from a struct of 4 bytes in size */
  164.  
  165. typedef OpaquePtr                QTCallBack;                    /* Substituted OpaquePtr for ``CallBackRecord*'' */
  166.  
  167. typedef SOMLargeStruct            TimeRecord;                    /* Derived from a struct of 16 bytes in size */
  168.  
  169. /* CallBack equates */
  170. typedef unsigned short            QTCallBackFlags;
  171.  
  172. typedef unsigned long            TimeBaseStatus;
  173.  
  174. typedef unsigned short            QTCallBackType;
  175.  
  176. typedef OpaquePtr QTCallBackProcPtr;
  177. typedef OpaquePtr QTCallBackUPP;
  178. typedef SOMLargeStruct            QTCallBackHeader;            /* Derived from a struct of 48 bytes in size */
  179.  
  180. typedef OpaquePtr QTSyncTaskProcPtr;
  181. typedef OpaquePtr QTSyncTaskUPP;
  182. typedef SOMLargeStruct            QTSyncTaskRecord;            /* Derived from a struct of 8 bytes in size */
  183.  
  184. typedef OpaquePtr                QTSyncTaskPtr;                /* Substituted OpaquePtr for ``QTSyncTaskRecord*'' */
  185.  
  186. /* track usage bits */
  187. /* Add/GetMediaSample flags */
  188. typedef unsigned short            nextTimeFlagsEnum;
  189.  
  190. typedef unsigned long            createMovieFileFlagsEnum;
  191.  
  192. typedef unsigned long            movieFlattenFlagsEnum;
  193.  
  194. typedef unsigned long            dataRefAttributesFlags;
  195.  
  196. typedef unsigned long            playHintsEnum;
  197.  
  198. typedef unsigned long            mediaHandlerFlagsEnum;
  199.  
  200. typedef SOMLargeStruct            SampleReferenceRecord;        /* Derived from a struct of 18 bytes in size */
  201.  
  202. typedef OpaquePtr                SampleReferencePtr;            /* Substituted OpaquePtr for ``SampleReferenceRecord*'' */
  203.  
  204. /*
  205. ************************
  206. * Initialization Routines 
  207. *************************
  208. */
  209. /*
  210. ************************
  211. * Error Routines 
  212. *************************
  213. */
  214. /*
  215. ************************
  216. * Idle Routines 
  217. *************************
  218. */
  219. /*
  220. ************************
  221. * calls for playing movies, previews, posters
  222. *************************
  223. */
  224. /*
  225. ************************
  226. * calls for controlling movies & tracks which are playing
  227. *************************
  228. */
  229. /* called between Begin & EndUpdate */
  230. /**** spatial movie routines ****/
  231. /** movie display clip */
  232. /** movie src clip */
  233. /** track src clip */
  234. /** bounds in display space (not clipped by display clip) */
  235. /** bounds in movie space */
  236. /** bounds in track space */
  237. /** mattes - always in track space */
  238. /*
  239. ************************
  240. * calls for getting/saving movies
  241. *************************
  242. */
  243. /*
  244. ************************
  245. * Movie State Routines
  246. *************************
  247. */
  248. /*
  249. ************************
  250. * Track/Media finding routines
  251. *************************
  252. */
  253. /*
  254. ************************
  255. * Track creation routines
  256. *************************
  257. */
  258. /*
  259. ************************
  260. * Track State routines
  261. *************************
  262. */
  263. /*
  264. ************************
  265. * get Media routines
  266. *************************
  267. */
  268. /*
  269. ************************
  270. * Media State routines
  271. *************************
  272. */
  273. /*
  274. ************************
  275. * Media Handler routines
  276. *************************
  277. */
  278. /*
  279. ************************
  280. * Media's Data routines
  281. *************************
  282. */
  283. /*
  284. ************************
  285. * Media Sample Table Routines
  286. *************************
  287. */
  288. /*
  289. ************************
  290. * Editing Routines
  291. *************************
  292. */
  293. /*
  294. ************************
  295. * Hi-level Editing Routines
  296. *************************
  297. */
  298. /*
  299. ************************
  300. * Middle-level Editing Routines
  301. *************************
  302. */
  303. /*
  304. ************************
  305. * movie & track edit state routines
  306. *************************
  307. */
  308. /*
  309. ************************
  310. * track reference routines
  311. *************************
  312. */
  313. /*
  314. ************************
  315. * modifier track types
  316. *************************
  317. */
  318. typedef SOMLargeStruct            ModifierTrackGraphicsModeRecord; /* Derived from a struct of 10 bytes in size */
  319.  
  320. /*
  321. ************************
  322. * high level file conversion routines
  323. *************************
  324. */
  325. /*
  326. ************************
  327. * Movie Timebase Conversion Routines
  328. *************************
  329. */
  330. /*
  331. ************************
  332. * Miscellaneous Routines
  333. *************************
  334. */
  335. /*
  336. ************************
  337. * Group Selection Routines
  338. *************************
  339. */
  340. /*
  341. ************************
  342. * User Data
  343. *************************
  344. */
  345. /*
  346. ************************
  347. * Video Media routines
  348. *************************
  349. */
  350. /* use these two routines at your own peril*/
  351. /*
  352. ************************
  353. * Sound Media routines
  354. *************************
  355. */
  356. /*
  357. ************************
  358. * Sprite Media routines
  359. *************************
  360. */
  361. /* flags for HitTestSpriteMedia */
  362. /* atom types for sprite media */
  363. /*
  364. ************************
  365. * Text Media routines
  366. *************************
  367. */
  368. /* Return displayFlags for TextProc */
  369. /*
  370. ***
  371.     Movie Controller support routines
  372. ***
  373. */
  374. #endif
  375. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  376. #endif
  377. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  378. /*
  379. ****
  380.     Scrap routines
  381. ****
  382. */
  383. /*
  384. ****
  385.     DataRef routines
  386. ****
  387. */
  388. /*
  389. ****
  390.     Playback hint routines
  391. ****
  392. */
  393. /*
  394. ****
  395.     Load time track hints
  396. ****
  397. */
  398. /*
  399. ****
  400.     Big screen TV
  401. ****
  402. */
  403. /*
  404. ****
  405.     Sprite Toolbox
  406. ****
  407. */
  408. /*  Sprite Properties*/
  409. /* flagsIn for SpriteWorldIdle*/
  410. /* flagsOut for SpriteWorldIdle*/
  411. /* flags for sprite track sample format*/
  412. /*
  413. ****
  414.     QT Atom Data Support
  415. ****
  416. */
  417. /* create and dispose QTAtomContainer objects*/
  418. /* locating nested atoms within QTAtomContainer container*/
  419. /* set a leaf atom's data*/
  420. /* extracting data*/
  421. /* extract a copy of an atom and all of it's children, caller disposes*/
  422. /* obtaining direct reference to atom data*/
  423. /*
  424.  building QTAtomContainer trees
  425.  creates and inserts new atom at specified index, existing atoms at or after index are moved toward end of list
  426.  used for Top-Down tree creation
  427. */
  428. /* inserts children from childrenContainer as children of parentAtom*/
  429. /* destruction*/
  430. /* replacement must be same type as target*/
  431. typedef ComponentInstance        MovieController;
  432.  
  433. typedef short                    mcAction;
  434.  
  435. typedef unsigned long            mcFlags;
  436.  
  437. typedef OpaquePtr MCActionFilterProcPtr;
  438. typedef OpaquePtr MCActionFilterUPP;
  439. typedef OpaquePtr MCActionFilterWithRefConProcPtr;
  440. typedef OpaquePtr MCActionFilterWithRefConUPP;
  441. /*
  442.     menu related stuff
  443. */
  444. /* menu item codes*/
  445. /* target management */
  446. /* event handling etc. */
  447. /* obsolete. use MCSetActionFilterWithRefCon instead. */
  448. /*
  449.     proc is of the form:
  450.         Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
  451.     proc returns TRUE if it handles the action, FALSE if not
  452.     action is passed as a VAR so that it could be changed by filter (ick)
  453.     this is consistent with the current dialog manager stuff
  454.     params is any potential parameters that go with the action <triple ick> 
  455.         such as set playback rate to xxx.
  456. */
  457. /* state type things */
  458. /* other stuff */
  459. /*
  460.     called when the app has changed thing about the movie (like bounding rect) or rate. So that we
  461.         can update our graphical (and internal) state accordingly.
  462. */
  463. /*
  464.     duration to use for time slider -- will be reset next time MCMovieChanged is called
  465.         or MCSetMovie is called
  466. */
  467. /*
  468.     returns the time value and the time scale it is on. if there are no movies, the
  469.         time scale is passed back as 0. scale is an optional parameter
  470.  
  471. */
  472. /*
  473.     makes m the only movie attached to the controller. makes the controller visible.
  474.     the window and where parameters are passed a long to MCSetMovie and behave as
  475.     described there
  476. */
  477. /*
  478.     calls for editing
  479. */
  480. /*
  481.  *    somewhat special stuff
  482. */
  483. #endif
  484. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  485. #endif
  486. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  487. /*
  488. ***************************************
  489. *                                        *
  490. *          T  I  M  E  B  A  S  E            *
  491. *                                        *
  492. ***************************************
  493. */
  494. /*
  495. ***************************************
  496. *                                        *
  497. *          C  A  L  L  B  A  C  K             *
  498. *                                        *
  499. ***************************************
  500. */
  501. /*
  502. ***************************************
  503. *                                        *
  504. *          C L O C K   C A L L B A C K      *
  505. *                S U P P O R T              *
  506. *                                        *
  507. ***************************************
  508. */
  509. /*
  510. ***************************************
  511. *                                        *
  512. *          S Y N C    T A S K S              *
  513. *                S U P P O R T              *
  514. *                                        *
  515. ***************************************
  516. */
  517. /* UPP call backs */
  518. #endif
  519.  
  520. #endif /* __SOMIDL__ */
  521.  
  522. #endif /* __MOVIES_IDL__ */
  523.  
  524.